package com.jiyun.om.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 签收单表
 * </p>
 *
 * @author zhx
 * @since 2025-02-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("receipt")
@Schema(description = "签收单表")
public class Receipt implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @Schema(description = "签收单 ID")
    private String receiptId;

    @Schema(description = "订单状态")
    private String orderStatus;

    @Schema(description = "签收人")
    private String signerName;

    @Schema(description = "签收时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date receiptTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date receiptTime1;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date receiptTime2;

    @Schema(description = "发货联系人姓名")
    private String senderContactName;

    @Schema(description = "收货联系人姓名")
    private String receiverContactName;

    @Schema(description = "发货联系人电话")
    private String senderContactPhone;

    @Schema(description = "收货联系人电话")
    private String receiverContactPhone;

    @Schema(description = "签收类型")
    private String receiptType;

    @Schema(description = "签收人手机号码")
    private String signerPhone;

    @Schema(description = "签收人身份证号")
    private String signerIdNumber;

    @Schema(description = "签收备注")
    private String receiptRemark;

    @Schema(description = "配送方式")
    private String deliveryMethod;

    @Schema(description = "签收单据")
    private String receiptDocument;

    @Schema(description = "提货单外键")
    private Integer poid;
    @TableField(exist = false)
    @Schema(description = "提货单")
    private String pickupOrderId;
    @TableField(exist = false)
    @Schema(description = "运单外键")
    private Integer wid;
    @TableField(exist = false)
    @Schema(description = "运单号")
    private String waybillId;
    @TableField(exist = false)
    @Schema(description = "始发地")
    private String origin;
    @TableField(exist = false)
    @Schema(description = "目的地")
    private String destination;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "实际发车时间")
    private Date actualDepartureTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "计划发车时间")
    private Date plannedDepartureTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "计划到达时间")
    private Date plannedArrivalTime;
    @TableField(exist = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "实际到达时间")
    private Date actualArrivalTime;
    @TableField(exist = false)
    @Schema(description = "数量")
    private Integer quantity;
    @TableField(exist = false)
    @Schema(description = "货物名称")
    private String cargoName;
    @TableField(exist = false)
    @Schema(description = "体积")
    private BigDecimal volume;
    @TableField(exist = false)
    @Schema(description = "重量")
    private BigDecimal weight;
    @TableField(exist = false)
    @Schema(description = "总数量")
    private Integer totalQuantity;
    @TableField(exist = false)
    @Schema(description = "总体积")
    private BigDecimal totalVolume;
    @TableField(exist = false)
    @Schema(description = "总重量")
    private BigDecimal totalWeight;
    @TableField(exist = false)
    @Schema(description = "订单号")
    private String orderId;
    @TableField(exist = false)
    @Schema(description = "客户")
    private String customer;
    @TableField(exist = false)
    @Schema(description = "发货地址")
    private String shippingAddress;
    @TableField(exist = false)
    @Schema(description = "收货地址")
    private String receivingAddress;

}
